home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1992 June: ROMin Holiday / ADC Developer CD (1992-06) (''ROMin Holiday'')_iso / Developer Connection - 06-1992.iso / Development Platforms / LISP Related / HyperDesign.Plastics / dfim.p < prev    next >
Encoding:
Text File  |  1991-06-05  |  22.0 KB  |  864 lines  |  [TEXT/AAIS]

  1. c_data(dfim1001,
  2. feature_set(feature(Rib_name,rib,B),feature(Rib_name,ribgrid,B),feature(Rib_name,ribcirc,B)),poor,
  3. cons(test,nil),
  4. and(or(feature(Rib_name,rib,B),
  5. or(feature(Rib_name,ribgrid,B),
  6. feature(Rib_name,ribcirc,B)
  7. )),
  8. and(feature(Wall_name,wall,B),
  9. and(intersects(Rib_name,Wall_name),
  10. and(val(Wall_name,thickness_1,Wall_thickness),
  11. and(val(Rib_name,width,Rib_width),
  12. and(is(F,mul(Wall_thickness,0.60001)),
  13. @>(Rib_width,F)
  14. )))))),
  15. and(Rib_name,Rib_width,Wall_name,Wall_thickness)).
  16.  
  17. c_data(dfim1002,
  18. feature_set(feature(Rib_name,rib,B),feature(Rib_name,ribgrid,B),feature(Rib_name,ribcirc,B)),bad,
  19. cons(test,nil),
  20. and(or(feature(Rib_name,rib,B),
  21. or(feature(Rib_name,ribgrid,B),
  22. feature(Rib_name,ribcirc,B)
  23. )),
  24. and(feature(Wall_name,wall,B),
  25. and(intersects(Rib_name,Wall_name),
  26. and(val(Wall_name,thickness_1,Wall_thickness),
  27. and(val(Rib_name,height,Rib_height),
  28. and(is(F,mul(Wall_thickness,3.00001)),
  29. @>(Rib_height,F)
  30. )))))),
  31. and(Rib_name,Rib_height,Wall_name,Wall_thickness)).
  32.  
  33. c_data(dfim1003,
  34. feature_set(feature(Rib_name,rib,B),feature(Rib_name,ribgrid,B),feature(Rib_name,ribcirc,B)),bad,
  35. cons(test,nil),
  36. and(or(feature(Rib_name,rib,B),
  37. or(feature(Rib_name,ribgrid,B),
  38. feature(Rib_name,ribcirc,B)
  39. )),
  40. and(val(Rib_name,draft,Rib_draft),
  41. @<(Rib_draft,0.5)
  42. )),
  43. and(Rib_name,Rib_draft)).
  44.  
  45. c_data(dfim1004,
  46. feature_set(feature(Rib_name,ribgrid,B),feature(Rib_name,ribcirc,B)),poor,
  47. cons(test,nil),
  48. and(or(feature(Rib_name,ribgrid,B),
  49. feature(Rib_name,ribcirc,B)
  50. ),
  51. and(feature(Wall_name,wall,B),
  52. and(intersects(Rib_name,Wall_name),
  53. and(val(Wall_name,thickness_1,Wall_thickness),
  54. and(val(Rib_name,space_between,Space_between),
  55. and(is(F,mul(Wall_thickness,2.00001)),
  56. @<(Space_between,F)
  57. )))))),
  58. and(Rib_name,Space_between,Wall_name,Wall_thickness)).
  59.  
  60. c_data(dfim1005,
  61. feature_set(feature(Rib_name,rib,B),feature(Rib_name,ribgrid,B),feature(Rib_name,ribcirc,B)),bad,
  62. cons(test,nil),
  63. and(or(feature(Rib_name,rib,B),
  64. or(feature(Rib_name,ribgrid,B),
  65. feature(Rib_name,ribcirc,B)
  66. )),
  67. and(feature(Wall_name,wall,B),
  68. and(intersects(Rib_name,Wall_name),
  69. and(val(Wall_name,thickness_1,Wall_thickness),
  70. and(val(Rib_name,radius,Radius),
  71. and(is(F,mul(Wall_thickness,0.250000)),
  72. @<(Radius,F)
  73. )))))),
  74. and(Rib_name,Radius,Wall_name,Wall_thickness)).
  75.  
  76. c_data(dfim1006,
  77. feature(Boss_name,boss,B),
  78. verybad,
  79. cons(test,nil),
  80. and(feature(Boss_name,boss,B),
  81. and(feature(Wall_name,wall,B),
  82. and(val(Boss_name,height,Boss_height),
  83. and(val(Wall_name,thickness_1,Wall_thickness),
  84. and(is(F,mul(Wall_thickness,2.500001)),
  85. @>(Boss_height,F)
  86. ))))),
  87. and(Boss_name,Boss_height,Wall_name,Wall_thickness)).
  88.  
  89. c_data(dfim1007,
  90. feature(Boss_name,boss,B),
  91. bad,
  92. cons(test,nil),
  93. and(feature(Boss_name,boss,B),
  94. and(feature(Wall_name,wall,B),
  95. and(intersects(Boss_name,Wall_name),
  96. and(val(Wall_name,thickness_1,Wall_thickness),
  97. and(val(Boss_name,radius,Radius),
  98. and(is(F,mul(Wall_thickness,0.250000)),
  99. @<(Radius,F)
  100. )))))),
  101. and(Boss_name,Radius,Wall_name,Wall_thickness)).
  102.  
  103. c_data(dfim1008,
  104. feature(Boss_name,boss,B),
  105. poor,
  106. cons(test,nil),
  107. and(feature(Boss_name,boss,B),
  108. and(feature(Wall_name,wall,B),
  109. and(intersects(Boss_name,Wall_name),
  110. and(val(Wall_name,thickness_1,Wall_thickness),
  111. and(val(Boss_name,inner_diameter,Inner_diameter),
  112. and(val(Boss_name,outer_diameter,Outer_diameter),
  113. and(is(E,sub(Outer_diameter,Inner_diameter)),
  114. and(is(Boss_wall_thickness,mul(E,0.50001)),
  115. and(is(F,mul(Wall_thickness,0.600001)),
  116. @>(Boss_wall_thickness,F)
  117. ))))))))),
  118. and(Boss_name,Boss_wall_thickness,Inner_diameter,Outer_diameter,Wall_name,Wall_thickness)).
  119.  
  120. c_data(dfim1009,
  121. feature(Boss_name,boss,B),
  122. bad,
  123. cons(test,nil),
  124. and(feature(Boss_name,boss,B),
  125. val(Boss_name,support,wall)
  126. ),
  127. and(Boss_name,B)).
  128.  
  129. c_data(dfim1010,
  130. feature(Boss_name,boss,B),
  131. poor,
  132. cons(test,nil),
  133. and(feature(Boss_name,boss,B),
  134. and(val(Boss_name,outer_draft,Draft_value),
  135. @<(Draft_value,0.5)
  136. )),
  137. and(Boss_name,Draft_value)).
  138.  
  139. c_data(dfim1011,
  140. feature(Boss_name,boss,B),
  141. bad,
  142. cons(test,nil),
  143. and(feature(Boss_name,boss,B),
  144. and(val(Boss_name,inner_draft,Draft_value),
  145. @<(Draft_value,0.5)
  146. )),
  147. and(Boss_name,Draft_value)).
  148.  
  149. c_data(dfim1012,
  150. feature(Hole_name,hole,B),
  151. bad,
  152. cons(test,nil),
  153. and(feature(Hole_name,hole,B),
  154. val(Hole_name,shape,rectangular)
  155. ),
  156. and(Hole_name,B,Hole_name)).
  157.  
  158. c_data(dfim1013,
  159. feature(Slot_name,slots,B),
  160. bad,
  161. cons(test,nil),
  162. and(feature(Slot_name,slots,B),
  163. and(feature(Wall_name,wall,B),
  164. and(intersects(Slot_name,Wall_name),
  165. and(val(Slot_name,space_between,Space_between),
  166. and(val(Wall_name,thickness_1,Wall_thickness),
  167. @<(Space_between,Wall_thickness)
  168. ))))),
  169. and(Slot_name,Wall_thickness,Space_between,Wall_name)).
  170.  
  171. c_data(dfim1014,
  172. feature(Hole_name,hole,B),
  173. bad,
  174. cons(test,nil),
  175. and(feature(Hole_name,hole,B),
  176. and(feature(Wall_name1,wall,B),
  177. and(feature(Wall_name2,wall,B),
  178. and(val(Hole_name,diameter,Diameter),
  179. and(intersects(Hole_name,Wall_name2),
  180. and(distance_to(Hole_name,Wall_name1,Distance),
  181. or(and(@>(Diameter,5.0001),@<(Distance,5.0001)),and(@<(Diameter,5.0001),@<(Distance,Diameter)))
  182. )))))),
  183. and(Wall_name1,Diameter,Wall_name2,Distance,Hole_name)).
  184.  
  185. c_data(dfim1015,
  186. feature(Hole_name,hole,B),
  187. bad,
  188. cons(test,nil),
  189. and(feature(Hole_name,hole,B),
  190. and(val(Hole_name,diameter,Diameter),
  191. and(val(Hole_name,hole_depth,Hole_depth),
  192. and(@<(Diameter,8.0001),
  193. and(@>(Diameter,0.25),
  194. and(is(A,mul(3.0001,Diameter)),
  195. @>(Hole_depth,A)
  196. )))))),
  197. and(Hole_name,Diameter,Hole_depth)).
  198.  
  199. c_data(dfim1016,
  200. feature(Slots_name1,slots,B),
  201. bad,
  202. cons(test,nil),
  203. and(feature(Slots_name1,slots,B),
  204. and(feature(Slots_name2,slots,B),
  205. and(feature(Wall_name,wall,B),
  206. and(intersects(Slots_name1,Wall_name),
  207. and(intersects(Slots_name2,Wall_name),
  208. and(val(Slots_name1,orientation,Orientation_1),
  209. and(val(Slots_name2,orientation,Orientation_2),
  210. or(and(val(Slots_name1,orientation,vertical),val(Slots_name2,orientation,horizontal)),and(val(Slots_name1,orientation,horizontal),val(Slots_name2,orientation,vertical)))
  211. ))))))),
  212. and(Slots_name1,Slots_name2)).
  213.  
  214.  
  215.  
  216. c_data(dfim1018,
  217. feature(Wall_name,wall,B),
  218. bad,
  219. cons(test,nil),
  220. and(feature(Wall_name,wall,B),
  221. and(val(Wall_name,thickness_1,Thickness_1),
  222. and(val(Wall_name,thickness_2,Thickness_2),
  223. and(val(Wall_name,variation_length,Variation_length),
  224. and(is(Delta,sub(Thickness_1,Thickness_2)),
  225. and(is(Ratio,div(Variation_length,Delta)),
  226. @<(Ratio,3.001)
  227. )))))),
  228. and(Wall_name,Thickness_1,Thickness_2,Variation_length)).
  229.  
  230.  
  231.  
  232.  
  233.  
  234. c_data(dfim1021,
  235. feature(Wall_name,wall,B)
  236. ,
  237. bad,
  238. cons(test,nil),
  239. and(feature(Wall_name,wall,B)
  240. ,
  241. and(val(Wall_name,varies,yes),
  242. and(val(Wall_name,thickness_1,Thickness_1),
  243. and(val(Wall_name,thickness_2,Thickness_2),
  244. and(is(Delta,sub(Thickness_1,Thickness_2)),
  245. and(is(Ratio,div(Delta,Thickness_1)),
  246. @>(Ratio,0.2500)
  247. )))))),
  248. and(Wall_name,Thickness_1,Thickness_2)).
  249.  
  250. c_data(dfim1022,
  251. feature(Rib1_name,rib,B),
  252. bad,
  253. cons(test,nil),
  254. and(feature(Rib1_name,rib,B),
  255. and(feature(Rib2_name,rib,B),
  256. and(feature(Wall_name,wall,B),
  257. and(intersects(Rib1_name,Rib2_name),
  258. and(intersects(Rib1_name,Wall_name),
  259. and(val(Rib1_name,width,Rib1_width),
  260. and(val(Rib2_name,width,Rib2_width),
  261. and(val(Wall_name,thickness_1,Wall_thickness),
  262. and(gsi(Rib1_name,Rib2_name,Gsi),
  263. @>(Gsi,2.25)
  264. ))))))))),
  265. and(Rib1_name,Rib1_width,Rib2_name,Rib2_width,Wall_name,Wall_thickness,Gsi)).
  266.  
  267. c_data(dfim1023,
  268. feature_set(feature(Rib_name,rib,B),feature(Rib_name,ribgrid,B),feature(Rib_name,ribcirc,B)),good,
  269. cons(test,nil),
  270. and(or(feature(Rib_name,rib,B),
  271. or(feature(Rib_name,ribgrid,B),
  272. feature(Rib_name,ribcirc,B)
  273. )),
  274. and(feature(Wall_name,wall,B),
  275. and(intersects(Rib_name,Wall_name),
  276. and(val(Wall_name,thickness_1,Wall_thickness),
  277. and(val(Rib_name,width,Rib_width),
  278. and(is(F,mul(Wall_thickness,0.60001)),
  279. @<(Rib_width,F)
  280. )))))),
  281. and(Rib_name,Rib_width,Wall_name,Wall_thickness)).
  282.  
  283. c_data(dfim1024,
  284. feature(Rib_name,rib,B),
  285. bad,
  286. cons(test,nil),
  287. and(feature(Rib_name,rib,B),
  288. and(feature(Boss_name,boss,B),
  289. and(feature(Wall_name,wall,B),
  290. and(intersects(Rib_name,Boss_name),
  291. and(intersects(Boss_name,Wall_name),
  292. and(intersects(Rib_name,Wall_name),
  293. and(val(Rib_name,width,Rib_width),
  294. and(val(Boss_name,inner_diameter,Inner_diameter),
  295. and(val(Boss_name,outer_diameter,Outer_diameter),
  296. and(is(E,sub(Outer_diameter,Inner_diameter)),
  297. and(is(Boss_wall_width,mul(E,0.5001)),
  298. and(val(Wall_name,thickness_1,Wall_thickness),
  299. and(or(gsi(Rib_name,Boss_name,Gsi),gsi(Boss_name,Rib_name,Gsi)),
  300. @>(Gsi,2.25)
  301. ))))))))))))),
  302. and(Boss_name,Boss_wall_width,Rib_name,Rib_width,Wall_name,Wall_thickness)).
  303.  
  304. c_data(dfim1025,
  305. feature(Rib_name,rib,B),
  306. bad,
  307. cons(test,nil),
  308. and(feature(Rib_name,rib,B),
  309. and(feature(Snap_name,snap,B),
  310. and(feature(Wall_name,wall,B),
  311. and(val(Rib_name,width,Rib_width),
  312. and(val(Snap_name,base_width,Base_width),
  313. and(val(Wall_name,thickness_1,Wall_thickness),
  314. and(gsi(Rib_name,Snap_name,Gsi),
  315. @>(Gsi,2.25)
  316. ))))))),
  317. and(Wall_name,Wall_thickness,Rib_name,Rib_width,Snap_name,Base_width)).
  318.  
  319. c_data(dfim1026,
  320. feature(Boss_name,boss,B)
  321. ,
  322. poor,
  323. cons(test,nil),
  324. and(feature(Boss_name,boss,B)
  325. ,
  326. and(val(Boss_name,height,Boss_height),
  327. and(val(Boss_name,inner_diameter,Inner_diameter),
  328. and(is(F,mul(Inner_diameter,2.500001)),
  329. @>(Boss_height,F)
  330. )))),
  331. and(Boss_name,Boss_height,Inner_diameter)).
  332.  
  333. c_data(dfim1027,
  334. feature(Snap_name,snap,B),
  335. poor,
  336. cons(test,nil),
  337. and(feature(Snap_name,snap,B),
  338. and(feature(Wall_name,wall,B),
  339. and(intersects(Wall_name,Snap_name),
  340. and(val(Snap_name,length,Length),
  341. and(val(Wall_name,thickness_1,Thickness_1),
  342. and(is(F,mul(3.001,Thickness_1)),
  343. @>(Length,F)
  344. )))))),
  345. and(Snap_name,Wall_name,Length,Thickness_1)).
  346.  
  347. c_data(dfim1028,
  348. feature(Hole_name,hole,B),
  349. poor,
  350. cons(test,nil),
  351. and(feature(Hole_name,hole,B),
  352. val(Hole_name,ejector_pins,no)
  353. ),
  354. and(Hole_name,Hole_name)).
  355.  
  356. c_data(dfim1029,
  357. feature(Slots_name,slots,B),
  358. poor,
  359. cons(test,nil),
  360. and(feature(Slots_name,slots,B),
  361. val(Slots_name,ejector_pins,no)
  362. ),
  363. and(Slots_name,Slots_name)).
  364.  
  365. c_data(dfim1030,
  366. feature(Wall_name,wall,B),
  367. poor,
  368. cons(test,nil),
  369. and(feature(Wall_name,wall,B),
  370. and(val(Wall_name,thickness_1,Thickness_1),
  371. @>(Thickness_1,4.001)
  372. )),
  373. and(Wall_name,Thickness_1)).
  374.  
  375. c_data(dfim1031,
  376. feature(Snap_name,snap,B),
  377. poor,
  378. cons(test,nil),
  379. and(feature(Snap_name,snap,B),
  380. and(feature(Wall_name,wall,B),
  381. and(intersects(Snap_name,Wall_name),
  382. and(val(Snap_name,radius,Radius),
  383. and(val(Wall_name,thickness_1,Thickness_1),
  384. and(is(F,mul(0.25001,Thickness_1)),
  385. @<(Radius,F)
  386. )))))),
  387. and(Snap_name,Wall_name,Radius,Thickness_1)).
  388.  
  389.  
  390.  
  391. c_data(dfim1033,
  392. feature(Snap_name,snap,B),
  393. poor,
  394. cons(test,nil),
  395. and(feature(Snap_name,snap,B),
  396. and(val(Snap_name,base_thickness,Base_thickness),
  397. and(val(Snap_name,end_thickness,End_thickness),
  398. and(is(Rat,div(Base_thickness,End_thickness)),
  399. @<(Rat,1.00001)
  400. )))),
  401. and(Snap_name,Base_thickness,End_thickness,Rat)).
  402.  
  403.  
  404.  
  405. c_data(dfim1035,
  406. feature(Hole_name,hole,B),
  407. poor,
  408. cons(test,nil),
  409. and(feature(Hole_name,hole,B),
  410. and(feature(Wall_name,wall,B),
  411. and(val(Hole_name,diameter,Diameter),
  412. and(val(Hole_name,edge_distance,Edge_distance),
  413. and(intersects(Hole_name,Wall_name),
  414. or(and(@>(Diameter,5.0001),@<(Edge_distance,5.0001)),and(@<(Diameter,5.0001),@<(Edge_distance,Diameter)))
  415. ))))),
  416. and(Wall_name,Diameter,Edge_distance,Hole_name)).
  417.  
  418. c_data(dfim1036,
  419. feature(Boss_name,boss,B),
  420. poor,
  421. cons(test,nil),
  422. and(feature(Boss_name,boss,B),
  423. val(Boss_name,support,nothing)
  424. ),
  425. and(Boss_name,B)).
  426.  
  427. c_data(dfim1037,
  428. feature_set(feature(Rib_name,rib,B),feature(Rib_name,ribgrid,B),feature(Rib_name,ribcirc,B)),good,
  429. cons(test,nil),
  430. and(or(feature(Rib_name,rib,B),
  431. or(feature(Rib_name,ribgrid,B),
  432. feature(Rib_name,ribcirc,B)
  433. )),
  434. and(feature(Wall_name,wall,B),
  435. and(intersects(Rib_name,Wall_name),
  436. and(val(Wall_name,thickness_1,Wall_thickness),
  437. and(val(Rib_name,height,Rib_height),
  438. and(is(F,mul(Wall_thickness,3.00001)),
  439. @<(Rib_height,F)
  440. )))))),
  441. and(Rib_name,Rib_height,Wall_name,Wall_thickness)).
  442.  
  443. c_data(dfim1038,
  444. feature_set(feature(Rib_name,rib,B),feature(Rib_name,ribgrid,B),feature(Rib_name,ribcirc,B)),good,
  445. cons(test,nil),
  446. and(or(feature(Rib_name,rib,B),
  447. or(feature(Rib_name,ribgrid,B),
  448. feature(Rib_name,ribcirc,B)
  449. )),
  450. and(val(Rib_name,draft,Rib_draft),
  451. @>(Rib_draft,0.5)
  452. )),
  453. and(Rib_name,Rib_draft)).
  454.  
  455. c_data(dfim1039,
  456. feature_set(feature(Rib_name,ribgrid,B),feature(Rib_name,ribcirc,B)),good,
  457. cons(test,nil),
  458. and(or(feature(Rib_name,ribgrid,B),
  459. feature(Rib_name,ribcirc,B)
  460. ),
  461. and(feature(Wall_name,wall,B),
  462. and(intersects(Rib_name,Wall_name),
  463. and(val(Wall_name,thickness_1,Wall_thickness),
  464. and(val(Rib_name,space_between,Space_between),
  465. and(is(F,mul(Wall_thickness,2.00001)),
  466. @>(Space_between,F)
  467. )))))),
  468. and(Rib_name,Space_between,Wall_name,Wall_thickness)).
  469.  
  470. c_data(dfim1040,
  471. feature_set(feature(Rib_name,rib,B),feature(Rib_name,ribgrid,B),feature(Rib_name,ribcirc,B)),good,
  472. cons(test,nil),
  473. and(or(feature(Rib_name,rib,B),
  474. or(feature(Rib_name,ribgrid,B),
  475. feature(Rib_name,ribcirc,B)
  476. )),
  477. and(feature(Wall_name,wall,B),
  478. and(intersects(Rib_name,Wall_name),
  479. and(val(Wall_name,thickness_1,Wall_thickness),
  480. and(val(Rib_name,radius,Radius),
  481. and(is(F,mul(Wall_thickness,0.250000)),
  482. @>(Radius,F)
  483. )))))),
  484. and(Rib_name,Radius,Wall_name,Wall_thickness)).
  485.  
  486. c_data(dfim1041,
  487. feature(Boss_name,boss,B),
  488. good,
  489. cons(test,nil),
  490. and(feature(Boss_name,boss,B),
  491. and(feature(Wall_name,wall,B),
  492. and(intersects(Boss_name,Wall_name),
  493. and(val(Boss_name,height,Boss_height),
  494. and(val(Wall_name,thickness_1,Wall_thickness),
  495. and(is(F,mul(Wall_thickness,2.500001)),
  496. @<(Boss_height,F)
  497. )))))),
  498. and(Boss_name,Boss_height,Wall_name,Wall_thickness)).
  499.  
  500. c_data(dfim1042,
  501. feature(Boss_name,boss,B),
  502. good,
  503. cons(test,nil),
  504. and(feature(Boss_name,boss,B),
  505. and(feature(Wall_name,wall,B),
  506. and(intersects(Boss_name,Wall_name),
  507. and(val(Wall_name,thickness_1,Wall_thickness),
  508. and(val(Boss_name,radius,Radius),
  509. and(is(F,mul(Wall_thickness,0.250000)),
  510. @>(Radius,F)
  511. )))))),
  512. and(Boss_name,Radius,Wall_name,Wall_thickness)).
  513.  
  514. c_data(dfim1043,
  515. feature(Boss_name,boss,B),
  516. good,
  517. cons(test,nil),
  518. and(feature(Boss_name,boss,B),
  519. and(feature(Wall_name,wall,B),
  520. and(intersects(Boss_name,Wall_name),
  521. and(val(Wall_name,thickness_1,Wall_thickness),
  522. and(val(Boss_name,inner_diameter,Inner_diameter),
  523. and(val(Boss_name,outer_diameter,Outer_diameter),
  524. and(is(E,sub(Outer_diameter,Inner_diameter)),
  525. and(is(Boss_wall_thickness,mul(E,0.50001)),
  526. and(is(F,mul(Wall_thickness,0.600001)),
  527. @<(Boss_wall_thickness,F)
  528. ))))))))),
  529. and(Boss_name,Boss_wall_thickness,Inner_diameter,Outer_diameter,Wall_name,Wall_thickness)).
  530.  
  531. c_data(dfim1044,
  532. feature(Boss_name,boss,B),
  533. good,
  534. cons(test,nil),
  535. and(feature(Boss_name,boss,B),
  536. and(val(Boss_name,outer_draft,Draft_value),
  537. @>(Draft_value,0.5)
  538. )),
  539. and(Boss_name,Draft_value)).
  540.  
  541. c_data(dfim1045,
  542. feature(Boss_name,boss,B),
  543. good,
  544. cons(test,nil),
  545. and(feature(Boss_name,boss,B),
  546. and(val(Boss_name,inner_draft,Draft_value),
  547. @>(Draft_value,0.5)
  548. )),
  549. and(Boss_name,Draft_value)).
  550.  
  551. c_data(dfim1046,
  552. feature(Hole_name,hole,B),
  553. good,
  554. cons(test,nil),
  555. and(feature(Hole_name,hole,B),
  556. val(Hole_name,shape,round)
  557. ),
  558. and(Hole_name,B,Hole_name)).
  559.  
  560. c_data(dfim1047,
  561. feature(Slot_name,slots,B),
  562. good,
  563. cons(test,nil),
  564. and(feature(Slot_name,slots,B),
  565. and(feature(Wall_name,wall,B),
  566. and(intersects(Slot_name,Wall_name),
  567. and(val(Slot_name,space_between,Space_between),
  568. and(val(Wall_name,thickness_1,Wall_thickness),
  569. @>(Space_between,Wall_thickness)
  570. ))))),
  571. and(Slot_name,Wall_thickness,Space_between,Wall_name)).
  572.  
  573. c_data(dfim1048,
  574. feature(Hole_name,hole,B),
  575. good,
  576. cons(test,nil),
  577. and(feature(Hole_name,hole,B),
  578. and(feature(Wall_name1,wall,B),
  579. and(feature(Wall_name2,wall,B),
  580. and(val(Hole_name,diameter,Diameter),
  581. and(intersects(Hole_name,Wall_name2),
  582. and(distance_to(Hole_name,Wall_name1,Distance),
  583. or(and(@>(Diameter,5.0001),@>(Distance,5.0001)),and(@<(Diameter,5.0001),@>(Distance,Diameter)))
  584. )))))),
  585. and(Wall_name1,Diameter,Wall_name2,Distance,Hole_name)).
  586.  
  587. c_data(dfim1049,
  588. feature(Hole_name,hole,B),
  589. good,
  590. cons(test,nil),
  591. and(feature(Hole_name,hole,B),
  592. and(val(Hole_name,diameter,Diameter),
  593. and(val(Hole_name,hole_depth,Hole_depth),
  594. and(@<(Diameter,8.0001),
  595. and(@>(Diameter,0.25),
  596. and(is(A,mul(3.0001,Diameter)),
  597. @<(Hole_depth,A)
  598. )))))),
  599. and(Hole_name,Diameter,Hole_depth)).
  600.  
  601. c_data(dfim1050,
  602. feature(Slots_name1,slots,B),
  603. good,
  604. cons(test,nil),
  605. and(feature(Slots_name1,slots,B),
  606. and(feature(Wall_name,wall,B),
  607. and(intersects(Slots_name1,Wall_name),
  608. and(intersects(Slots_name2,Wall_name),
  609. and(val(Slots_name1,orientation,Orientation_1),
  610. and(val(Slots_name2,orientation,Orientation_2),
  611. and(different(Slots_name1,Slots_name2),
  612. or(and(val(Slots_name1,orientation,vertical),val(Slots_name2,orientation,vertical)),and(val(Slots_name1,orientation,horizontal),val(Slots_name2,orientation,horizontal)))
  613. ))))))),
  614. and(Slots_name1,Slots_name2)).
  615.  
  616. c_data(dfim1051,
  617. feature(Wall_name,wall,B),
  618. good,
  619. cons(test,nil),
  620. and(feature(Wall_name,wall,B),
  621. and(val(Wall_name,thickness_1,Thickness_1),
  622. and(val(Wall_name,thickness_2,Thickness_2),
  623. and(val(Wall_name,variation_length,Variation_length),
  624. and(is(Delta,sub(Thickness_1,Thickness_2)),
  625. and(is(Ratio,div(Variation_length,Delta)),
  626. @>(Ratio,3.001)
  627. )))))),
  628. and(Wall_name,Thickness_1,Thickness_2,Variation_length)).
  629.  
  630. c_data(dfim1052,
  631. feature(Wall_name,wall,B),
  632. good,
  633. cons(test,nil),
  634. and(feature(Wall_name,wall,B),
  635. and(val(Wall_name,varies,yes),
  636. and(val(Wall_name,thickness_1,Thickness_1),
  637. and(val(Wall_name,thickness_2,Thickness_2),
  638. and(is(Delta,sub(Thickness_1,Thickness_2)),
  639. and(is(Ratio,div(Delta,Thickness_1)),
  640. @<(Ratio,0.2500)
  641. )))))),
  642. and(Wall_name,Thickness_1,Thickness_2)).
  643.  
  644. c_data(dfim1053,
  645. feature(Rib1_name,rib,B),
  646. good,
  647. cons(test,nil),
  648. and(feature(Rib1_name,rib,B),
  649. and(feature(Rib2_name,rib,B),
  650. and(feature(Wall_name,wall,B),
  651. and(intersects(Rib1_name,Rib2_name),
  652. and(intersects(Rib1_name,Wall_name),
  653. and(val(Rib1_name,width,Rib1_width),
  654. and(val(Rib2_name,width,Rib2_width),
  655. and(val(Wall_name,thickness_1,Wall_thickness),
  656. and(gsi(Rib1_name,Rib2_name,Gsi),
  657. @<(Gsi,2.25)
  658. ))))))))),
  659. and(Rib1_name,Rib1_width,Rib2_name,Rib2_width,Wall_name,Wall_thickness,Gsi)).
  660.  
  661. c_data(dfim1054,
  662. feature(Rib_name,rib,B),
  663. good,
  664. cons(test,nil),
  665. and(feature(Rib_name,rib,B),
  666. and(feature(Boss_name,boss,B),
  667. and(feature(Wall_name,wall,B),
  668. and(intersects(Rib_name,Boss_name),
  669. and(intersects(Boss_name,Wall_name),
  670. and(intersects(Rib_name,Wall_name),
  671. and(val(Rib_name,width,Rib_width),
  672. and(val(Boss_name,inner_diameter,Inner_diameter),
  673. and(val(Boss_name,outer_diameter,Outer_diameter),
  674. and(is(E,sub(Outer_diameter,Inner_diameter)),
  675. and(is(Boss_wall_width,mul(E,0.5001)),
  676. and(val(Wall_name,thickness_1,Wall_thickness),
  677. and(or(gsi(Rib_name,Boss_name,Gsi),gsi(Boss_name,Rib_name,Gsi)),
  678. @<(Gsi,2.25)
  679. ))))))))))))),
  680. and(Boss_name,Boss_wall_width,Rib_name,Rib_width,Wall_name,Wall_thickness)).
  681.  
  682. c_data(dfim1055,
  683. feature(Rib_name,rib,B),
  684. good,
  685. cons(test,nil),
  686. and(feature(Rib_name,rib,B),
  687. and(feature(Snap_name,snap,B),
  688. and(feature(Wall_name,wall,B),
  689. and(val(Rib_name,width,Rib_width),
  690. and(val(Snap_name,base_width,Base_width),
  691. and(val(Wall_name,thickness_1,Wall_thickness),
  692. and(gsi(Rib_name,Snap_name,Gsi),
  693. @<(Gsi,2.25)
  694. ))))))),
  695. and(Wall_name,Wall_thickness,Rib_name,Rib_width,Snap_name,Base_width)).
  696.  
  697. c_data(dfim1056,
  698. feature(Boss_name,boss,B),
  699. good,
  700. cons(test,nil),
  701. and(feature(Boss_name,boss,B),
  702. and(val(Boss_name,height,Boss_height),
  703. and(val(Boss_name,inner_diameter,Inner_diameter),
  704. and(is(F,mul(Inner_diameter,2.500001)),
  705. @<(Boss_height,F)
  706. )))),
  707. and(Boss_name,Boss_height,Inner_diameter)).
  708.  
  709. c_data(dfim1057,
  710. feature(Snap_name,snap,B),
  711. good,
  712. cons(test,nil),
  713. and(feature(Snap_name,snap,B),
  714. and(feature(Wall_name,wall,B),
  715. and(intersects(Wall_name,Snap_name),
  716. and(val(Snap_name,length,Length),
  717. and(val(Wall_name,thickness_1,Thickness_1),
  718. and(is(F,mul(3.001,Thickness_1)),
  719. @<(Length,F)
  720. )))))),
  721. and(Snap_name,Wall_name,Length,Thickness_1)).
  722.  
  723. c_data(dfim1058,
  724. feature(Hole_name,hole,B),
  725. good,
  726. cons(test,nil),
  727. and(feature(Hole_name,hole,B),
  728. val(Hole_name,ejector_pins,yes)
  729. ),
  730. and(Hole_name,Hole_name)).
  731.  
  732. c_data(dfim1059,
  733. feature(Slots_name,slots,B),
  734. good,
  735. cons(test,nil),
  736. and(feature(Slots_name,slots,B),
  737. val(Slots_name,ejector_pins,yes)
  738. ),
  739. and(Slots_name,Slots_name)).
  740.  
  741. c_data(dfim1060,
  742. feature(Wall_name,wall,B),
  743. good,
  744. cons(test,nil),
  745. and(feature(Wall_name,wall,B),
  746. and(val(Wall_name,thickness_1,Thickness_1),
  747. @<(Thickness_1,4.001)
  748. )),
  749. and(Wall_name,Thickness_1)).
  750.  
  751. c_data(dfim1061,
  752. feature(Snap_name,snap,B),
  753. good,
  754. cons(test,nil),
  755. and(feature(Snap_name,snap,B),
  756. and(feature(Wall_name,wall,B),
  757. and(intersects(Snap_name,Wall_name),
  758. and(val(Snap_name,radius,Radius),
  759. and(val(Wall_name,thickness_1,Thickness_1),
  760. and(is(F,mul(0.25001,Thickness_1)),
  761. @>(Radius,F)
  762. )))))),
  763. and(Snap_name,Wall_name,Radius,Thickness_1)).
  764.  
  765. c_data(dfim1062,
  766. feature(Snap_name,snap,B),
  767. good,
  768. cons(test,nil),
  769. and(feature(Snap_name,snap,B),
  770. and(val(Snap_name,base_thickness,Base_thickness),
  771. and(val(Snap_name,end_thickness,End_thickness),
  772. and(is(Rat,div(Base_thickness,End_thickness)),
  773. @>(Rat,1.00001)
  774. )))),
  775. and(Snap_name,Base_thickness,End_thickness,Rat)).
  776.  
  777.  
  778.  
  779. c_data(dfim1064,
  780. feature(Hole_name,hole,B),
  781. good,
  782. cons(test,nil),
  783. and(feature(Hole_name,hole,B),
  784. and(feature(Wall_name,wall,B),
  785. and(val(Hole_name,diameter,Diameter),
  786. and(val(Hole_name,edge_distance,Edge_distance),
  787. and(intersects(Hole_name,Wall_name),
  788. or(and(@>(Diameter,5.0001),@>(Edge_distance,5.0001)),and(@<(Diameter,5.0001),@>(Edge_distance,Diameter)))
  789. ))))),
  790. and(Wall_name,Diameter,Edge_distance,Hole_name)).
  791.  
  792. c_data(dfim1065,
  793. feature(Boss_name,boss,B),
  794. good,
  795. cons(test,nil),
  796. and(feature(Boss_name,boss,B),
  797. val(Boss_name,support,gussets)
  798. ),
  799. and(Boss_name,B)).
  800.  
  801. attribute_data(adata1001,
  802. gsi(A,B,C),
  803. and(feature(A,rib,R),
  804. and(feature(B,rib,R),
  805. and(intersects(A,B),
  806. and(feature(D,wall,R),
  807. and(val(A,width,E),
  808. and(val(B,width,F),
  809. and(val(D,thickness_1,G),
  810. and(is(H,mul(G,G)),
  811. and(is(I,mul(4.000001,H)),
  812. and(is(J,mul(E,E)),
  813. and(is(K,mul(F,F)),
  814. and(is(L,mul(8.000001,G)),
  815. and(is(M,add(I,J)),
  816. and(is(N,add(K,M)),
  817. is(C,div(N,L))
  818. ))))))))))))))).
  819.  
  820. attribute_data(adata1002,
  821. gsi(A,B,C),
  822. and(feature(A,rib,R),
  823. and(feature(B,boss,R),
  824. and(intersects(A,B),
  825. and(feature(D,wall,R),
  826. and(val(A,width,E),
  827. and(val(B,inner_diameter,Inner_diameter),
  828. and(val(B,outer_diameter,Outer_diameter),
  829. and(is(Q,sub(Outer_diameter,Inner_diameter)),
  830. and(is(F,mul(Q,0.50001)),
  831. and(val(D,thickness_1,G),
  832. and(is(H,mul(G,G)),
  833. and(is(I,mul(4.000001,H)),
  834. and(is(J,mul(E,E)),
  835. and(is(K,mul(F,F)),
  836. and(is(L,mul(8.000001,G)),
  837. and(is(M,add(I,J)),
  838. and(is(N,add(K,M)),
  839. is(C,div(N,L))
  840. )))))))))))))))))).
  841.  
  842. attribute_data(adata1001,
  843. gsi(A,B,C),
  844. and(feature(A,rib,R),
  845. and(feature(B,snap,R),
  846. and(intersects(A,B),
  847. and(feature(D,wall,R),
  848. and(val(A,width,E),
  849. and(val(B,base_width,F),
  850. and(val(D,thickness_1,G),
  851. and(is(H,mul(G,G)),
  852. and(is(I,mul(4.000001,H)),
  853. and(is(J,mul(E,E)),
  854. and(is(K,mul(F,F)),
  855. and(is(L,mul(8.000001,G)),
  856. and(is(M,add(I,J)),
  857. and(is(N,add(K,M)),
  858. is(C,div(N,L))
  859. ))))))))))))))).
  860.  
  861. rule(gsi(A,B,C),
  862.  and(
  863.   attribute_data(D,gsi(A,B,C),E),
  864.   provable(A,E))).